<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>变量提升与函数提升</title>
</head>
<body>
    <script>
    
    // 1.变量提升就只提升了声明/定义,没有提升赋值

     console.log(arr1); // 只有var有声明提升,但是赋值没有提升,所以是undefined 
     var arr1 = 123

     console.log(arr2); // let和const没有声明提升,所以是报错.  
     let arr2 = 123

     // 2.函数提升,为了体现函数是一等公民形象,所以在js设计之初,给函数进行了定义提升

     fn()
     function fn(){
        console.log(123);
     }
    </script>
</body>
</html>